package com.wangsh.usersCenter.system.pojo;

/**
 * 系统配置的pojo
 */

import java.util.Date;
import java.util.Map;
import java.util.TreeMap;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.wangsh.usersCenter.common.pojo.BasePojo;

public class ASysPro extends BasePojo<ASysPro>
{
	// 主键id
	private int id;
	// 名称
	private String name;
	// 英文名字
	private String engName;
	// 值,可以存储json
	private String vals;
	// 描述
	private String content;
	// 类型:0:默认,1:支付方式
	private byte proType;
	private byte status;
	private Date createTime;
	private Date updateTime;
	private Date pubTime;

	private String statusStr;
	private String proTypeStatusStr;

	/* 存储所有状态的容器 */
	private Map<String, String> enumsMap = new TreeMap<String, String>();

	public Map<String, String> getEnumsMap()
	{
		// 根据状态值获取字符串描述
		ASysProEnum[] aSysProEnums = ASysProEnum.values();
		for (int i = 0; i < aSysProEnums.length; i++)
		{
			ASysProEnum aSysProEnum = aSysProEnums[i];
			String key = aSysProEnum.toString();
			enumsMap.put(key + "-" + aSysProEnum.getStatus() + "", aSysProEnum.getName());
		}
		return enumsMap;
	}

	public String getStatusStr()
	{
		// 根据状态值获取字符串描述
		ASysProEnum[] aSysProEnums = ASysProEnum.values();
		for (int i = 0; i < aSysProEnums.length; i++)
		{
			ASysProEnum aSysProEnum = aSysProEnums[i];
			if (aSysProEnum.toString().startsWith("STATUS_"))
			{
				// 表示是状态的标识
				if (aSysProEnum.getStatus() == this.getStatus())
				{
					this.statusStr = aSysProEnum.getName();
					break;
				}
			}
		}
		return statusStr;
	}

	public String getProTypeStatusStr()
	{
		// 根据状态值获取字符串描述
		ASysProEnum[] aSysProEnums = ASysProEnum.values();
		for (int i = 0; i < aSysProEnums.length; i++)
		{
			ASysProEnum aSysProEnum = aSysProEnums[i];
			if (aSysProEnum.toString().startsWith("PROTYPESTATUS_"))
			{
				// 表示是状态的标识
				if (aSysProEnum.getStatus() == this.getProType())
				{
					this.proTypeStatusStr = aSysProEnum.getName();
					break;
				}
			}
		}
		return proTypeStatusStr;
	}
	
	@Override
	public ASysPro parseJSON(JSONObject souJSON)
	{
		return JSON.toJavaObject(souJSON, this.getClass());
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public String getEngName()
	{
		return engName;
	}

	public void setEngName(String engName)
	{
		this.engName = engName;
	}

	public String getVals()
	{
		return vals;
	}

	public void setVals(String vals)
	{
		this.vals = vals;
	}

	public String getContent()
	{
		return content;
	}

	public void setContent(String content)
	{
		this.content = content;
	}

	public byte getProType()
	{
		return proType;
	}

	public void setProType(byte proType)
	{
		this.proType = proType;
	}

	public byte getStatus()
	{
		return status;
	}

	public void setStatus(byte status)
	{
		this.status = status;
	}

	public Date getCreateTime()
	{
		return createTime;
	}

	public void setCreateTime(Date createTime)
	{
		this.createTime = createTime;
	}

	public Date getUpdateTime()
	{
		return updateTime;
	}

	public void setUpdateTime(Date updateTime)
	{
		this.updateTime = updateTime;
	}

	public Date getPubTime()
	{
		return pubTime;
	}

	public void setPubTime(Date pubTime)
	{
		this.pubTime = pubTime;
	}

	public void setEnumsMap(Map<String, String> enumsMap)
	{
		this.enumsMap = enumsMap;
	}

	@Override
	public String toString()
	{
		return "ASysPro [id=" + id + ", name=" + name + ", engName=" + engName + ", vals=" + vals + ", content="
				+ content + ", proType=" + proType + ", status=" + status + ", createTime=" + createTime
				+ ", updateTime=" + updateTime + ", pubTime=" + pubTime + ", statusStr=" + statusStr
				+ ", proTypeStatusStr=" + proTypeStatusStr + ", enumsMap=" + enumsMap + "]";
	}

}
